/**
 * 
 */
package edu.acatlan.unam.shared.bdoo;

//Librerías de la interfaz
import com.google.gwt.canvas.dom.client.Context2d;

/**
 * @author jacobo
 * 
 * Esta interfaz indica las funciones mínimas que debe de tener
 * cualquier elemento con representación gráfica en la aplicación 
 */
public interface ElementoGrafico {
	/**
	 * @return la componente X de la coordenada inicial del objeto
	 */
	int getPosX();
	
	/**
	 * @return la componente Y de la coordenada inicial del objeto
	 */
	int getPosY();
	
	/**
	 * @param cx la componente X de la coordenada inicial del objeto
	 * @param cy la componente Y de la coordenada inicial del objeto
	 */
	void setPosicion(int cx, int cy);
	
	/**
	 * @param mouseX la componente X de la coordenada del mouse
	 * @param mouseY la componente Y de la coordenada del mouse
	 * @return true si las coordenadas del ratón están dentro del área del rectángulo
	 * de la tabla, se ha seleccionado.
	 */
	boolean estaBajo(int mouseX, int mouseY);
	
	/**
	 * @param contexto es el buffer en donde se pintará la información
	 * de las tablas. Se toma en cuenta que la fuente es de 14 pixeles
	 */
	void dibuja(Context2d contexto);
}
